home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-07-27 | 2.1 KB | 141 lines | [TEXT/MPS ] |
- include 'sysequ.a'
- include 'traps.a'
- proc
-
- send_max equ 2000
-
- csJGNEinit equ 1
- csJGNEfinish equ 2
-
- PBcsCode equ 0 ; longInt
- PBhandleJGNE equ 4 ; UPP
- ; procedure HandleJGNE(var er:EventRecord; refcon:longInt);
- PBrefcon equ 8 ; longInt
- PBisopenaddr equ 12 ; BooleanPtr
- PBneednulladdr equ 16 ; BooleanPtr
-
- ; procedure JGNEResource(var pb:ParamBlock);
- main
- movem.l a0-a2/d0-d2,-(sp)
- move.l 28(sp),a0
- move.l PBcsCode(a0),d0
- cmpi.l #csJGNEinit,d0
- beq.s init
- cmpi.l #csJGNEfinish,d0
- beq.s finish
- bra.s return
-
- init
- lea data,a1
- move.l PBhandleJGNE(a0),(a1)+
- move.l JGNEFilter,(a1)+
- move.l PBrefcon(a0),(a1)+
- move.l a5,(a1)+
- clr.w (a1)+ ; injgne
- move.l a1,PBisopenaddr(a0)
- clr.w (a1)+ ; isopen
- move.l a1,PBneednulladdr(a0)
- clr.w (a1)+ ; neednull
-
- move.l #6,d0
- _NewPtr ,sys
- lea sysptr,a1
- move.l a0,(a1)
-
- move.w #$4EF9,(a0)
- lea doJGNE,a1
- move.l a1,2(a0)
- lea JGNEFilter,a1
- move.l a0,(a1)
-
- _FlushDataCache
- _FlushInstructionCache
-
- bra.s return
-
- finish
- move.l sysptr,a0
- move.l oldaddr,a1
- move.l a1,2(a0)
- _FlushDataCache
- _FlushInstructionCache
-
- ; bra.s return
-
- return
- movem.l (sp)+,a0-a2/d0-d2
- move.l (sp)+,(sp)
- rts
-
- SPretval equ 8+12
-
- ; A1 = event register ptr.
- ; return A1 and D0.
- doJGNE
- _Debugger
- movem.l d1/d2/a2,-(sp)
- move.l a1,-(sp)
-
- lea injgne,a0
- tst.w (a0)
- bne.s notme
-
- move.w #1,(a0)
-
- move.w neednull,d0
- bne.s yup
- move.w (a1),d0
- beq.s nup
- cmpi.w #3,d0 ; keyDown
- beq.s yup
- move.w isopen,d0
- beq.s nup
- yup
- move.l a5,-(sp)
- move.l appa5,a5
-
- move.l a1,-(sp)
- move.l refcon,-(sp)
- move.l newaddr,a0
- jsr (a0)
-
- move.l (sp)+,a5
- move.l (sp),a1
- nup
- clr.l d0
- move.w (a1),d0
- sne d0
- neg.b d0
- clr.w SPretval(sp)
- move.b d0,SPretval(sp)
- move.w SPretval(sp),d0
-
- lea injgne,a0
- clr.w (a0)
- notme
- move.l (sp)+,a1
- movem.l (sp)+,d1/d2/a2
- move.l oldaddr,a0
- tst.w d0
- _Debugger
- jmp (a0)
-
- data
- newaddr ds.l 1
- oldaddr ds.l 1
- refcon ds.l 1
- appa5 ds.l 1
- injgne ds.w 1
- isopen ds.w 1
- neednull ds.w 1
- sysptr ds.l 1
-
- endp
-
- end
-
- asm -wb "{active}"
- (evaluate "{active}" =~ /(?*):(?*)®1.a/ )> dev:null
- (evaluate "{active}" =~ "/(?*)®2.a/" )> dev:null
- link -t rsrc -c RSED -rt PROC=128 "{active}.o" -o "{®2}.rsrc"
-